
	Ext.onReady(function() {
			Ext.QuickTips.init();//初始化单态类。所有基于标签的提示将开始启用。
			Ext.form.Field.prototype.msgTarget = 'under';//错误提示的显示位置。属性prototype是函数在作为构造函数时使用，有这个构造函数创建的所有对象都会基础prototype所引用对象的所有属性
			var sm = new Ext.grid.CheckboxSelectionModel();//通过checkbox选择或反选时触发选区轮换的一个制定选区模型。
						var cols = new Ext.grid.ColumnModel(  //Grid的列模型（ColumnModel）的默认实现。该类由列配置组成的数组初始化。
								[ new Ext.grid.RowNumberer(), //一个辅助类，用于传入到Ext.grid.ColumnModel，作为自动列数字的生成。
								sm, {
									header : '班级名称',
									dataIndex : 'classes_name'
								}, 
								{
									header : '人数',
									dataIndex : 'classes_number'
								}, {
									header : '所属学院',
									dataIndex : 'classes_systems.systems_name'
								}, {
									header : '专业',
									dataIndex : 'classes_professional.professional_name'
								} ]);
						cols.defaultSortable = true;

			var classes = new Ext.data.Record.create( [ {
							name : 'classes_id',
							type : 'int'
						}, {
							name : 'classes_code',
							type : 'string'
						}, {
							name : 'classes_name',
							type : 'string'
						}, {
							name : 'classes_grade',
							type : 'string'
						}, {
							name : 'classes_password',
							type : 'string'
						}, {
							name : 'classes_number',
							type : 'string'
						}, {
							name : 'classes_sysFlag',
							type : 'string'
						}, {
							name : 'classes_professional.professional_id',
							type : 'int'
						}, {
							name : 'classes_professional.professional_name',
							type : 'string'
						}, {
							name : 'classes_systems.systems_id',
							type : 'int'
						}, {
							name : 'classes_systems.systems_name',
							type : 'string'
						} ]);

			//得到班级数据源
			var classesstore;
						function getData(val) {
							var url = "/schedule/queryClasses?flag="
									+ encodeURI(encodeURI(val));
							classesstore = new Ext.data.Store( {
								id : "professional_id",
								proxy : new Ext.data.HttpProxy( {
									url : url
								}),
								reader : new Ext.data.JsonReader( {
									totalProperty : 'totalProperty',
									root : 'root'
								}, classes),
								remoteSort : true
							});
							if (val != undefined) {
								grid.reconfigure(classesstore, cols);
							}
							classesstore.load( {
								params : {
									start : 0,
									limit : 15
								}
							});
						}
						;
						getData();


						var courses = new Ext.data.Record.create( [ {
							name : 'course_id',
							type : 'int'
						}, {
							name : 'course_name',
							type : 'string'
						}, {
							name : 'course_code',
							type : 'string'
						} ]);
						
			var coursestore = new Ext.data.Store( {
							proxy : new Ext.data.HttpProxy( {
								url : '/schedule/queryCourseRClass?flag='+classes_ids
							}),
							reader : new Ext.data.JsonReader( {
								totalProperty : 'totalProperty',
								root : 'root'
							}, courses),
							remoteSort : true
						});
						coursestore.load();
						
						var courseSm = new Ext.grid.CheckboxSelectionModel();
						var courseCols = new Ext.grid.ColumnModel( [
								new Ext.grid.RowNumberer(), courseSm, {
									header : '课程名称',
									dataIndex : 'course_name'
								}, {
									header : '课程编号',
									dataIndex : 'course_code'
								} ]);
						courseCols.defaultSortable = true;
			     var classes_ids="";


			     
			   //显示班级grid
					var grid = new Ext.grid.GridPanel(
							{
								title : '班级信息列表',
								region : 'west',
								buttonAlign : "left",
								listeners : {
									"rowdblclick" : function(grid, rowIndex, e) {
										var records = grid.getSelectionModel()
												.getSelections();
									}
								},
								buttons : [
										{
											text : "添加该该班级所上的课程",
											listeners : {
												click : function() {
													var records = grid
															.getSelectionModel()
															.getSelections();
													if ("" == records) {
														Ext.MessageBox.alert("提示",
																"请选择要添加课程的班级");
													} else {
															classes_ids = records[0]
																	.get("classes_id")
																	;
														Ext.MessageBox
																.confirm(
																		"确认添加",
																		"确认添加所选数据？",
																		function(button) {
																			if (button == "yes") {
																				addToCourse(classes_ids);
																			}
																		}, this);
													}
												}
											}
										
										} ],
								loadMask : true,
								store : classesstore,
								cm : cols,
								sm : new Ext.grid.RowSelectionModel( {
									singleSelect : false
								}),
								viewConfig : {
									forceFit : true
								},
								bbar : new Ext.PagingToolbar( {
									store : classesstore,
									pageSize : 15,//页大小 
									displayInfo : true,//是否显示displayMsg 
									displayMsg : "本页显示第{0}条到第{1}条的记录,一共{2}条",
									emptyMsg : "没有记录"//如果没有记录，则显示该文本 
								})

							});
							
					//显示班级窗体
							var classWin = new Ext.Window( {
						layout : 'fit',
						x : 30,
						y : 40,
						title : '班级信息',
						width : 450,
						height : 480,
						resizable : true,
						closeAction : 'close',
						plain : true,
						items : grid,
						listeners : {
							close : function(w) {
								w.restore();
							},
							maximize : function(w) {
							}
						}
					}).show();
			     
			     
								//创建显示课程的grid
									var courseGrid = new Ext.grid.GridPanel(
									
								{
									title : '课程信息列表',
									region : 'center',
									buttonAlign : "left",
									width : 450,
									height : 460,
									loadMask : true,//True表示为当grid加载过程中，会有一个Ext.LoadMask的遮罩效果。默认为false。
									store : coursestore,
									disableSelection : false, //True表示为禁止grid的选区功能（默认为false）
									cm : courseCols,
									sm : courseSm,
									viewConfig : { //作用在grid's UI试图上的配置项对象， 任何Ext.grid.GridView可用的配置选项都可在这里指定。
										forceFit : true //True表示为自动展开/缩小列的宽度以适应grid的宽度，这样就不会出现水平的滚动条。ColumnModel中任意的width的设置可覆盖此配置项。
									},
									buttons : [ {
										text : "确定",
										listeners : {
											click : function() {
												var course_ids = "";
												var records = courseGrid.getSelectionModel()
														.getSelections();
												if ("" == records) {
													Ext.MessageBox.alert("提示", "请选择要添加课程");
												} else {
													for ( var i = 0; i < records.length; i++) {
														course_ids += records[i]
																.get("course_id")
																+ ",";
													};
													Ext.Ajax
															.request( {
																url : '/schedule/addToCourseRClass',
																params : {
																	classes_ids : classes_ids,
																	course_ids : course_ids
																},
																method : 'POST',
																success : function(
																		form,
																		action) {
																	Ext.Msg
																			.alert(
																					"系统消息",
																					"关联成功",
																					function() {
																						addToCourseWin.close();
																						window.parent.frames['mainFrame'].location
																						.reload('queryClass.jsp');
																					},
																					this);
																},
																failure : function(
																		form,
																		action) {
																	Ext.Msg
																			.alert(
																					"系统消息",
																					"关联失败",
																					function() {
																						addToCourseWin.close();
																						window.parent.frames['mainFrame'].location
																						.reload('queryClass.jsp');
																					},
																					this);
																}
															});
												
												}
											}
										}

									} ],
									bbar : new Ext.PagingToolbar( {
										store : coursestore,
										pageSize : 15,// 页大小
										displayInfo : true,// 是否显示displayMsg
										displayMsg : "本页显示第{0}条到第{1}条的记录,一共{2}条",
										emptyMsg : "没有记录"// 如果没有记录，则显示该文本
									})
								}
									);
									
									//添加课程显示窗体
					var addToCourseWin = new Ext.Window( {
							layout : 'fit',
							title : '班级信息',
							width : 450,
							height : 480,
							resizable : true,
							closeAction : 'close',
							plain : true,
							items : courseGrid,
							listeners : {
								close : function(w) {
									w.restore();
								},
								maximize : function(w) {
								}
							}
						});
						var addToCourse = function(val) {
							addToCourseWin.show();
						}
						
						
		});